User Interface Customization

SoftwareShield System Feature Guide > User Interface Customization

## User Interface Customization

If you are using IronWrapping, the primary way you will customize your UI is by manipulating the IronWrap User Interface settings. If you are using IronWrapping, your program itself does not need to provide any UI whatsoever, as the IronWrapping system will handle all of this for you (and still be customizable). If you wish, you may further customize your UI from inside your IronWrapped program if you are using a Hybrid approach using the information in the rest of this section.

From inside your program, using either the Hybrid or Embedded approach, there are two ways your application will be able to customize its UI relative to interaction with the ClientProtector component and enforcement of your license.

1. Responding to COM events fired from the ClientProtector during its processing of a function call.

2. Interpreting the meaning of "return code" values returned from the ClientProtector after its finished processing a function call.

The ClientProtector component, which is the COM server that enforces the logic of your license, on occasion will need feedback from your user (or at the very least from your program) in the middle of a function call. However, you must be able to completely control the user interface of all aspects of your program to suit your audience and their needs as well as presenting a consistent look and feel. You may also have specific localization or language needs. The ClientProtector facilitates these needs by firing COM events to your software when it needs feedback in the middle of a call - delegating necessary user interaction to your software so you can completely control the UI.

Your application can easily define an event handler (sometimes called a call-back function) that the ClientProtector might call while it is processing. The following subsection discusses how you can Customize your UI by Connecting to COM Events.

Your application will not always get events fired back when you need to invoke some logic of your own. In fact, specific events are generally only fired when ClientProtector processing can not continue without some piece of information from your user. Most function calls you make will simply return and it is the responsibility of your application to interpret the outcome of these calls based on the value of a "return code" reference parameter (passed in the context of that function call). The following sub-section discusses how you can Define Program Logic Based on Return Codes.

#### More Information

For help on understanding how COM events from the ClientProtector will help you control your UI, see Customize UI by Connecting to COM Events in this Feature Guide.

For help on understanding how "return codes" from the ClientProtector will help you control your UI, see Define Program Logic Based on Return Codes in this Feature Guide.

For help on actually connecting to the ClientProtector events, see Creating a ClientProtector COM Event Sink in the SoftwareShield ClientProtector Reference.

For help on actually interpreting the meaning of specific return_code parameters returned from ClientProtector functions, see RETURNCODES in the SoftwareShield ClientProtector Reference.